#include "mainwindow.h"

#include <QApplication>
#include <QPushButton>
#include <QTimer>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//标准应用程序对象
    QObject* btn = new QPushButton;//QObject类是所有使用元对象系统的类的基类  自动生成一个元对象
    //qDebug类似与cout 输出信息
    //metaObject() 这个函数就是返回元对象指针 然后调接口函数className() 返回类的名字
    qDebug()<<btn->metaObject()->className();
    QPushButton* pushbtn = qobject_cast<QPushButton*>(btn);//qobject_cast 强制类型转换 把btn转换成 QPushButton* 类型的指针
                                                          //因为qObject是他的父类 可以进行转换
    qDebug()<<pushbtn->metaObject()->className();//这两个打印出来一样 是因为不是问的指针类型 而是创建出来的对象类型

    QTimer* timer = new QTimer();
    qDebug()<<timer->inherits("QTimer");//inherits 可以判断一个对象是不是继承自某个类的实例
    qDebug()<<timer->inherits("QObject");
    qDebug()<<timer->inherits("QTimer");


}
